#include "headfile.h"

int Encoder_count1 = 0;
int Encoder_count2 = 0;

void motor_init()
{
	pwm_init(TIM_2,TIM2_CH1,1000);
    gpio_init(GPIO_A,Pin_7,OUT_PP);//AIN2
	gpio_init(GPIO_A,Pin_6,OUT_PP);//AIN1
	pwm_init(TIM_2,TIM2_CH2,1000);
	gpio_init(GPIO_B,Pin_0,OUT_PP);//BIN1
	gpio_init(GPIO_B,Pin_1,OUT_PP);//BIN2
	
}

void motor_dutyA(int duty)
{
    if (duty >= 0)
    {
        pwm_update(TIM_2,TIM2_CH1,duty);
        gpio_set(GPIO_A,Pin_7,0);
        gpio_set(GPIO_A,Pin_6,1);
    }
    else
    {
        pwm_update(TIM_2,TIM2_CH1,-duty);
        gpio_set(GPIO_A,Pin_7,1);
        gpio_set(GPIO_A,Pin_6,0);
    }
}

void motor_dutyB(int duty)
{
    if (duty >= 0)
    {
        pwm_update(TIM_2,TIM2_CH2,duty);
        gpio_set(GPIO_B,Pin_0,1);
        gpio_set(GPIO_B,Pin_1,0);
    }
    else
    {
        pwm_update(TIM_2,TIM2_CH2,-duty);
        gpio_set(GPIO_B,Pin_0,0);
        gpio_set(GPIO_B,Pin_1,1);
    }
}

void encode_init()
{
	exti_init(EXTI_PA2,FALLING,0);
	gpio_init(GPIO_A,Pin_3,IU);
	exti_init(EXTI_PA4,FALLING,0);
	gpio_init(GPIO_A,Pin_5,IU);
}

